/**
 * 用户组织机构单位管理
 */

Ext.define('Department', {
			extend : 'Ext.data.Model',
			fields : [{
						name : 'code',
						type : 'string'
					}, {
						name : 'name',
						type : 'string'
					}, {
						name : 'remark',
						type : 'string'
					}, {
						name : 'address',
						type : 'string'
					}, {
						name : 'website',
						type : 'string'
					}, {
						name : 'tel',
						type : 'string'
					}, {
						name : 'contacts',
						type : 'string'
					}]
		});
var superDeptStore = Ext.create('Ext.data.TreeStore', {
			fields : ['id', 'name'],
			proxy : {
				type : 'ajax',
				url : 'deptAction!getTreeBypid.action'
			},
			root : {
				id : 1,
				name : '上海市质量监督局',
				expanded : true
			},
			reader : {
				type : 'json'
			}
		});
superDeptStore.load();
deptPicker = {
	id : 'department.tempid',
	fieldLabel : '上级机构<font color=red>*</font>',
	xtype : 'treepicker',
	store : superDeptStore,
	displayField : 'name',
	valueField : 'id'
};
// 数据列表store
var store = Ext.create('Ext.data.TreeStore', {
			model : 'Department',
			proxy : {
				type : 'ajax',
				url : 'deptAction!queryTree.action',
				reader : {
					type : 'json',
					root : 'list'
				}
			}
		});
var grid = Ext.create('Ext.tree.Panel', {
			store : store,
			useArrows : true,
			root : {
				id : 0,
				name : "根目录",
				expanded : true
			},
			rootVisible : false,
			renderTo : Ext.getBody(),
			border : 0,
			listeners : {
				itemclick : function(view, record, item, index, event, opts) {
				}
			},
			columns : [{
						xtype : 'treecolumn',
						text : '机构名称',
						sortable : true,
						width : 150,
						dataIndex : 'name'
					}, {
						text : '地址',
						align : 'center',
						sortable : true,
						dataIndex : 'address',
						width : 150
					}, {
						text : '联系人',
						align : 'center',
						sortable : true,
						dataIndex : 'contacts',
						width : 150
					}, {
						text : '联系电话',
						align : 'center',
						sortable : true,
						dataIndex : 'tel',
						width : 150
					}, {
						text : '网址',
						align : 'center',
						sortable : true,
						dataIndex : 'website',
						width : 150
					}, {
						text : '编码',
						align : 'center',
						sortable : true,
						dataIndex : 'code',
						width : 50
					}, {
						text : '描述',
						sortable : true,
						align : 'center',
						dataIndex : 'remark',
						flex : 1
					}],
			tbar : [{
						xtype : 'button',
						text : '新增',
						iconCls : 'icon-add',
						handler : function() {
							deptWin.setTitle('新增');
							deptWin.show();
							superDeptStore.load();
						}
					}, {
						xtype : 'button',
						text : '修改',
						iconCls : 'icon-edit',
						handler : function() {
							var selMode = grid.getSelectionModel();
							var model = selMode.getSelection();
							if (model.length > 0) {
								var raw = model[0].raw;
								deptWin.setTitle('修改');
								deptWin.show();

								deptForm.getForm().findField('department.id')
										.setValue(raw.id);
								deptForm.getForm()
										.findField('department.tempid')
										.setValue(raw.pid);
								deptForm.getForm()
										.findField('department.areaid')
										.setValue(raw.areaid);
								deptForm.getForm().findField('department.pid')
										.setValue(raw.pid);
								deptForm.getForm().findField('department.name')
										.setValue(raw.name);
								deptForm.getForm()
										.findField('department.remark')
										.setValue(raw.remark);
								deptForm.getForm().findField('department.code')
										.setValue(raw.code);
								deptForm.getForm().findField('department.leaf')
										.setValue(raw.leaf);
								deptForm.getForm().findField('department.isbasic')
										.setValue(raw.isbasic);
								deptForm.getForm().findField('department.tel')
										.setValue(raw.tel);
								deptForm.getForm()
										.findField('department.address')
										.setValue(raw.address);
								deptForm.getForm()
										.findField('department.website')
										.setValue(raw.website);
								superDeptStore.load();
							} else {
								Ext.Msg.alert('提示', '请选择要修改的数据行！');
							}

						}
					}]
		});
// 地区数据
var areaStore = new Ext.data.JsonStore({
			proxy : {
				type : 'ajax',
				url : 'busiDictAction!getByType.action?type=8',
				reader : {
					type : 'json',
					root : 'list'
				}
			},
			fields : ['id', 'name']
		});
areaStore.load();
var areaCombobox = Ext.create('Ext.form.ComboBox', {
			fieldLabel : '所属区域<font color=red>*</font>',
			emptyText : '请选择...',
			labelAlign : 'left',
			allowBlank : false,
			store : areaStore,
			name : 'department.areaid',// 控件名称
			editable : false,
			labelWidth : 90,
			displayField : 'name',
			valueField : 'id'// 实际值
		});
var deptForm = Ext.create('Ext.form.Panel', {
	bodyPadding : 5,
	border : 0,
	defaults : {
		border : false
	},
	url : 'deptAction!saveOrUpdate.action',
	items : [{
				layout : 'hbox',
				bodyStyle : 'padding:5px 0px 5px 10px',
				defaults : {
					border : false,
					xtype : 'panel',
					flex : 1,
					layout : 'anchor',
					anchor : '90%',
					labelAlign : 'left'
				},

				items : [{
							defaultType : 'textfield',
							defaults : {
								layout : 'anchor',
								anchor : '90%',
								labelAlign : 'left',
								labelWidth : 90
							},
							items : [{
										xtype : 'hiddenfield',
										name : 'department.id'
									}, {
										xtype : 'hiddenfield',
										name : 'department.pid'
									}, {
										fieldLabel : '机构名称<font color=red>*</font>',
										name : 'department.name',
										allowBlank : false
									}, {
										id : 'department.tempid',
										fieldLabel : '上级机构<font color=red>*</font>',
										xtype : 'treepicker',
										store : superDeptStore,
										displayField : 'name',
										valueField : 'id'
									}, {
										fieldLabel : '机构编码<font color=red>*</font>',
										allowBlank : false,
										name : 'department.code'
									}, areaCombobox, {
										xtype : 'fieldcontainer',
										fieldLabel : '是否叶子节点<font color=red>*</font>',
										defaultType : 'radiofield',
										layout : 'hbox',
										items : [{
													boxLabel : '是',
													name : 'department.leaf',// 是叶子节点
													inputValue : 'true',
													checked : true
												}, {
													boxLabel : '否',
													name : 'department.leaf',
													inputValue : 'false'
												}]
									}]
						},

						{
							defaultType : 'textfield',
							defaults : {
								layout : 'anchor',
								anchor : '90%',
								labelAlign : 'left',
								labelWidth : 90
							},
							items : [{
										fieldLabel : '电话',
										name : 'department.tel'
									}, {
										fieldLabel : '地址',
										name : 'department.address'
									}, {
										fieldLabel : '网址',
										name : 'department.website'
									}, {
										fieldLabel : '联系人',
										name : 'department.contacts'
									}, {
										xtype : 'fieldcontainer',
										fieldLabel : '是否基层局<font color=red>*</font>',
										defaultType : 'radiofield',
										layout : 'hbox',
										items : [{
													boxLabel : '是',
													name : 'department.isbasic',// 是叶子节点
													inputValue : '1'
												}, {
													boxLabel : '否',
													name : 'department.isbasic',
													inputValue : '0',
													checked : true
												}]
									}]
						}]
			}, {
				layout : 'hbox',
				bodyStyle : 'padding:5px 0px 5px 10px',
				defaults : {
					border : false,
					xtype : 'panel',
					flex : 1,
					layout : 'anchor',
					anchor : '90%',
					labelAlign : 'left'
				},

				items : [{
							defaultType : 'textfield',
							defaults : {
								layout : 'anchor',
								anchor : '90%',
								labelAlign : 'left',
								labelWidth : 90
							},
							items : [{
										xtype : 'textarea',
										fieldLabel : '描述',
										anchor : '95%',
										name : 'department.remark'
									}]
						}]
			}]
});

var deptWin = Ext.create('Ext.window.Window', {
	title : '修改',
	width : 600,
	modal : true,
	layout : 'fit',
	closeAction : 'hide',
	closable : true,
	items : [deptForm],
	listeners : {
		show : function() {
			deptForm.getForm().reset();
		}
	},
	buttonAlign : 'center',
	buttons : [{
				text : '保存',
				formBind : true,
				// disabled : true,
				handler : function() {
					var form = deptForm.getForm();
					var tempid = form.findField('department.tempid').getValue();
					form.findField('department.pid').setValue(tempid);
					form.submit({
								success : function(form, action) {
									var refreshNode = store.getRootNode();
									store.load({
												node : refreshNode
											});
									deptWin.hide();
								}
							});
				}
			}, {
				text : '取消',
				handler : function() {
					deptWin.hide();
				}
			}]
});

// ***********************新增、修改结束**************************************

Ext.onReady(function() {
			Ext.create('Ext.container.Viewport', {
						layout : 'fit',
						items : [grid]
					});
		});
